EBImage adalah package untuk pengolahan dan analisi gambar pada bahasa R. Dengan menggunakan EBImage, gambar bisa diatur kecerahan, di-crop, di-rotasi, hingga diberi filter.

Import Gambar

Library EBImage harus di-import terlebih dahulu agar bisa dijalankan. Kemudian import gambar yang ingin ditampilkan.

library(EBImage)
Image <- readImage('sebong.png')
display(Image)

print(Image)
## Image 
##   colorMode    : Color 
##   storage.mode : double 
##   dim          : 1920 1080 3 
##   frames.total : 3 
##   frames.render: 1 
## 
## imageData(object)[1:5,1:6,1]
##           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
## [1,] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [2,] 0.6862745 0.7058824 0.7254902 0.7215686 0.7019608 0.6901961
## [3,] 0.6901961 0.7058824 0.7254902 0.7215686 0.7019608 0.6901961
## [4,] 0.6901961 0.7058824 0.7254902 0.7254902 0.7019608 0.6941176
## [5,] 0.6941176 0.7137255 0.7294118 0.7254902 0.7058824 0.6941176

Kecerahan (Brightness)

Di sini gambar ditampilkan menjadi dua dimana pada Image1 intensitas gambar ditambah 0.2, sedangkan pada Image2 dikurangi 0.2 sehingga nanti dapat terlihat perbedaan diantara kedua gambar.

Image1 <- Image + 0.2
Image2 <- Image - 0.2
par(mfrow = c(1,2))
plot(Image1)
plot(Image2)

Penyesuaian Kontras (Adjusting Contrast)

Penyesuaian kontras dilakukan dengan menggunakan perkalian dimana Image3 dikali 0.5 dan Image4 dikali 2.

Image3 <- Image * 0.5
Image4 <- Image * 2
par(mfrow = c(1,2))
plot(Image3)
plot(Image4)

Koreksi Gamma (Gamma Correction)

Pada koreksi gamma, digunakan simbol ^ dalam melakukan operasi

Image5 <- Image ^ 2
Image6 <- Image ^ 0.7
par(mfrow = c(1,2))
plot(Image5)
plot(Image6)

Pemotongan Gambar (Cropping)

Pada cropping, gambar akan dipotong dimana ukuran pemotongan tidak boleh melebihi ukuran pixel gambar. Disini saya menggunakan gambar dengan rentang 1920x1080

display(Image[189:1000, 100:600,])

Transformasi (Transformation)

Pada transformasi ini, gambar akan diputar/dirotasi

Imagetr <- translate(rotate(Image, 45), c(50, 0))
display(Imagetr)

Pengaturan Warna (Color Management)

Dengan pengaturan warna ini, warna gambar akan berubah sesuai dengan warna yang diatur. Di bawah ini, saya menggunakan warna Graysicale sehingga nanti warna gambarnya akan berubah menjadi Graysicale

colorMode(Image) <- Grayscale
display(Image)
## Only the first frame of the image stack is displayed.
## To display all frames use 'all = TRUE'.

print(Image)
## Image 
##   colorMode    : Grayscale 
##   storage.mode : double 
##   dim          : 1920 1080 3 
##   frames.total : 3 
##   frames.render: 3 
## 
## imageData(object)[1:5,1:6,1]
##           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
## [1,] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [2,] 0.6862745 0.7058824 0.7254902 0.7215686 0.7019608 0.6901961
## [3,] 0.6901961 0.7058824 0.7254902 0.7215686 0.7019608 0.6901961
## [4,] 0.6901961 0.7058824 0.7254902 0.7254902 0.7019608 0.6941176
## [5,] 0.6941176 0.7137255 0.7294118 0.7254902 0.7058824 0.6941176
colorMode(Image) <- Color
display(Image)

Penyaringan Gambar (Filtering)

Pada filtering ini, gambar akan di-smoothing atau dikaburkan dengan menggunakan low-pass filter dan selanjutnya gambar akan diberi high-pass filter untuk melihat perbedaanya

fLow <- makeBrush(21, shape='disc', step = FALSE)^2
fLow <- fLow/sum(fLow)
Image.fLow <- filter2(Image, fLow)
display(Image.fLow)

fHigh <- matrix(1, nc = 3, nr = 3)
fHigh[2, 2] <- -8
Image.fHigh <- filter2(Image, fHigh)
display(Image.fHigh)

Median Filter

Di bawah ini, noise pada gambar akan dihilangkan dengan menggunakan median filter

medFltr <- medianFilter(Image, 1.1)
display(medFltr)

Sumber referensi : https://thinkstudioo.blogspot.com/2018/03/analisis-image-menggunakan-ebimage-di-r.html https://thinkstudioo.blogspot.com/2018/03/analisis-image-menggunakan-ebimage-di-r_6.html